

<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>
<script type="text/javascript">
  var geocoder = new google.maps.Geocoder();
  var map;
  var marker;
  var infowindow = new google.maps.InfoWindow();
  var markersArray = [];
  
	  // funcion para crear la marca 
	   function CrearMarca(location) {
          marker = new google.maps.Marker({
                   position: location,
                   map: map
                 });
          markersArray.push(marker);
       }
	   
	   // Borrar un Marcador al momento de insertar otro marcador
       function BorrarOverlays() {
         if (markersArray) {
            for (i in markersArray) {
                markersArray[i].setMap(null);
            }
             markersArray.length = 0;
         }
        }
		
		// Crear mensaje del marcador, anteriormente creado
		function CrearMensajeMarcador(location,LAT_LNG){
		infowindow.setContent('<h3>Destino:</h3>'+ location );
			 vaciarCampos();
			 llenarFormularioSymfony(location, LAT_LNG);
			 infowindow.open(map, marker);
			 infoWindow.close();
		}
		
		function llenarFormularioSymfony(location, LAT_LNG){
		   document.getElementById('libretarecoleccion_lre_longitud').value = LAT_LNG.lng();			
		   document.getElementById('libretarecoleccion_lre_latitud').value = LAT_LNG.lat();
		   direccion = location.split(', ');
		   pais = direccion.length - 1;
		   ciudad = direccion.length - 2;
		   urbaniz = 0;
		   document.getElementById('libretarecoleccion_lre_pais').value = direccion[pais];	
		   document.getElementById('libretarecoleccion_lre_ciudad').value = direccion[ciudad];
		   if (direccion.length > 2)
			   document.getElementById('libretarecoleccion_lre_urbanizacion').value = direccion[urbaniz];
		}		

		function vaciarCampos(){
		   document.getElementById('libretarecoleccion_lre_longitud').value = null;			
		   document.getElementById('libretarecoleccion_lre_latitud').value = null;
		   document.getElementById('libretarecoleccion_lre_pais').value = null;	
		   document.getElementById('libretarecoleccion_lre_ciudad').value = null;
		   document.getElementById('libretarecoleccion_lre_urbanizacion').value = null;
		}

       // Funcion Geo-posicion 
       function geocodePosition(pos) {
                geocoder.geocode({
                latLng: pos
               }, function(responses) {
               if (responses && responses.length > 0) {
                       updateMarkerAddress(responses[0].formatted_address);
               } else {
                       updateMarkerAddress('No puede determinar la direccion seleccionada.');
                       }
               });
        }

       // Funcion para inicializar el mapa
      function initialize() {
               
               var latlng = new google.maps.LatLng(10.4653, -66.9744);
               var myOptions = {
                   zoom: 12,
                   center: latlng,
				   draggable: true,
                   mapTypeId: google.maps.MapTypeId.ROADMAP
               }
               map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
			   google.maps.event.addListener(map, 'click', function(event) {
				   BorrarOverlays();
				   CrearMarca(event.latLng);
				   latlng = new google.maps.LatLng(event.latLng.lat(),event.latLng.lng());
				   geocoder.geocode({'latLng': latlng}, function(results, status) {
                           if (status == google.maps.GeocoderStatus.OK) {
                               if (results[1]) {
					   CrearMensajeMarcador(results[1].formatted_address,event.latLng);
                               } else {
                                       alert("No se Encontraron Resultados");
									   BorrarOverlays();
                                      }
                            } else {
                                       alert("No es un Destino Valido");
									   BorrarOverlays();
                                   }
                    });
			    });	   
	   
      }

       // Creamos la marca de la direccion que el usuario coloque en el Textfield 
       function codeAddress() {
                var address = document.getElementById("address").value; 
                if (geocoder) {
                    geocoder.geocode( { 'address': address}, function(results, status) {
					BorrarOverlays();
                    if (status == google.maps.GeocoderStatus.OK) {
						// le mandamos la ubicacion al mapa
                        map.setCenter(results[0].geometry.location);
						// Creamos el marcador con la ubicacion
                        CrearMarca(results[0].geometry.location);
						// Creamos el mensaje a dicho marcador
					    CrearMensajeMarcador(results[0].formatted_address,results[0].geometry.location);
						// Creamos un evento cada vez que el usuario le de CLIK al Google Map
                     } else {
                             alert("La Busque no fue exitosa, Introduzca correctamente la direccion");
                             }
                   });
                 }
          }
      // Onload handler to fire off the app.
    google.maps.event.addDomListener(window, 'load', initialize);
</script>
